home *** CD-ROM | disk | FTP | other *** search
/ Do It! 2 / Do It! Volume 2.iso / for_amiga / diavolodemo / db302dem.lha / Misc / API / DiavoloPrefs.h < prev    next >
C/C++ Source or Header  |  1995-10-11  |  14KB  |  244 lines

  1. /* Diavolo Preferences and Settings Header File
  2.  
  3.    © 1995 Martin Korndörfer
  4.  
  5.    V 1.30
  6. */
  7.  
  8.  
  9. /* The following structures contains all settings for Diavolo. Use them
  10.    with DAPI_ASKPREFS and DAPI_CHANGEPREFS (see below) to change the
  11.    settings of Diavolo.
  12.  
  13.    ATTENTION!
  14.  
  15.    Please be careful WHAT and HOW you change. We can't give any guarantees
  16.    if one of these settings is used irregularly.
  17.  
  18. */
  19.  
  20.  
  21. /* *********************************************************************** */
  22. /* *********************************************************************** */
  23. /*                                                                         */
  24. /* SCSI Settings                                                           */
  25. /*                                                                         */
  26. /* *********************************************************************** */
  27. /* *********************************************************************** */
  28.  
  29. #define MAXCHAR_CATPATH     400
  30. #define MAXCHAR_DESTPATH    400
  31. #define MAXCHAR_DESTDEVICE  31
  32. #define MAXCHAR_FONTNAME    31
  33. #define MAXCHAR_PUBSCREEN   100
  34. #define MAXCHAR_REPDEST     400
  35.  
  36. /* SCSI Settings. Be EXTREMLY careful what you're doing here! Best not
  37.    to mess with these settings. */
  38.  
  39. struct SCSIData
  40.     {
  41.         ULONG                   scsi_Magic;                 /* Must be set to SCSI_MAGIC value below */
  42.         ULONG                   scsi_Length;                /* Must be set to sizeof(struct SCSIData) */
  43.  
  44.         BOOL                    scsi_Ok;                    /* Settings valid */
  45.         UBYTE                   scsi_DeviceType;            /* SCSI Device type. Must be 1 = Seq. tape */
  46.         UBYTE                   scsi_Version;               /* SCSI 1 or 2 */
  47.         BOOL                    scsi_Removable;             /* Medium removable */
  48.         char                    scsi_Vendor[9];             /* Device vendor as reported by SCSI_INQUIRY */
  49.         char                    scsi_ProductID[17];         /* Device Product ID */
  50.         char                    scsi_Revision[5];           /* Device SW revision */
  51.         BOOL                    scsi_WriteProtect;          /* Device write protected */
  52.         ULONG                   scsi_MinBlockLength;        /* Reported min. block size */
  53.         ULONG                   scsi_MaxBlockLength;        /* Reported max. block size */
  54.         ULONG                   scsi_MaxTransfer;           /* SCSI buffer size */
  55.         UWORD                   scsi_MemType;               /* SCSI buffer memory type. Set to MEMF_xxx value */
  56.         ULONG                   scsi_BlockSize;             /* Size of one transfer block */
  57.         ULONG                   scsi_MaxBlockSize;          /* Max. size of one transfer block */
  58.         BOOL                    scsi_CngBuffered;           /* 'Buffered' flag can be altered */
  59.         BOOL                    scsi_Buffered;              /* Enable SCSI device buffer */
  60.         BOOL                    scsi_CngFixedBlock;         /* 'Fixed blocks' can be altered */
  61.         BOOL                    scsi_FixedBlock;            /* Use fixed block size */
  62.         BOOL                    scsi_CngPartition;          /* Partition setting not used yet! */
  63.         UWORD                   scsi_CatalogDest;           /* Destination of Catalog. See below.
  64.                                                                Only CATALOG_PATH valid right now */
  65.         ULONG                   scsi_CatalogSize;           /* Not used yet */
  66.         char                    scsi_CatalogPath[MAXCHAR_CATPATH + 2];  /* Path of catalog files */
  67.         BOOL                    scsi_CngSetMark;            /* 'SetMark' can be altered */
  68.         BOOL                    scsi_SetMark;               /* Use Setmarks instead of Filemarks */
  69.         BOOL                    scsi_CngSpaceBlock;         /* 'Fast locate' can be altered */
  70.         BOOL                    scsi_SpaceBlock;            /* 'Fast locate' enabled */
  71.         BOOL                    scsi_CngSeek;               /* 'Direct seek' can be altered */
  72.         BOOL                    scsi_Seek;                  /* 'Direct seek' enabled */
  73.         BOOL                    scsi_CngOverwrite;          /* 'Update-in-place' can be altered */
  74.         BOOL                    scsi_Overwrite;             /* 'Update-in-place' enabled */
  75.         BOOL                    scsi_CngCompression;        /* 'HW Compression' can be altered */
  76.         BOOL                    scsi_Compression;           /* 'HW Compression' enabled */
  77.         struct
  78.         {
  79.             unsigned            scsi_UseEarlyWarning : 1;   /* Use 'early end of tape warning' */
  80.             unsigned            scsi_UseFixedTapeLen : 1;   /* Use fixed tape length */
  81.             unsigned            scsi_SpaceFM : 1;           /* Locate backups using Filemarks */
  82.             unsigned            scsi_SyncRewind : 1;        /* Wait until finished rewinding */
  83.             unsigned            scsi_SequenceNR : 1;        /* Use sequence numbers in blocks */
  84.             unsigned            scsi_Reposition : 1;        /* Reposition after scan */
  85.             unsigned            scsi_UnusedFlags : 26;      /* Unused */
  86.  
  87.         } scsi_Flags;
  88.         ULONG                   scsi_TapeLength;            /* Tapelength in MB */
  89.  
  90.         UWORD                   scsi_NumPartitions;         /* Actual number of partitions on tape */
  91.         UWORD                   scsi_MediumDensity;         /* SCSI Medium density. Default: 0 */
  92.  
  93.         UBYTE                   scsi_Dummy[34];             /* Reserved */
  94.     };
  95.  
  96. #define SCSI_MAGIC          0x27fd82c2                      /* Magic value for SCSIData V 1.33+ */
  97.  
  98. #define MEMTYPE_CHIP        0                               /* Internal, NOT for scsi_Memtype! */
  99. #define MEMTYPE_DMA         1
  100. #define MEMTYPE_ANY         2
  101.  
  102. #define CATALOG_PATH        0                               /* for scsi_CatalogDest. Only CATALOG_PATH is */
  103. #define CATALOG_PARTITION   1                               /* valid right now */
  104. #define CATALOG_NONE        2
  105.  
  106.  
  107.  
  108. /* *********************************************************************** */
  109. /* *********************************************************************** */
  110. /*                                                                         */
  111. /* Preferences                                                             */
  112. /*                                                                         */
  113. /* *********************************************************************** */
  114. /* *********************************************************************** */
  115.  
  116.  
  117. /* PrefsSnapshot is used to save window positions and sizes */
  118.  
  119. struct PrefsSnapshot
  120.     {
  121.         WORD                    Left, Top, Width, Height;   /* Set all to -1 to center on screen */
  122.     };
  123.  
  124. struct PrefsFile
  125.     {
  126.         ULONG                   prf_Magic;              /* Must be set to PRF_MAGIC value below */
  127.         ULONG                   prf_Length;             /* Must be set to sizeof(struct PrefsFile) */
  128.  
  129.         BOOL                    prf_UseDrive[4];        /* Which disk drives will be used for operation */
  130.         BOOL                    prf_VerifyWrite;        /* Verify disk writes */
  131.         UBYTE                   prf_BackupMedium;       /* Medium to save to. See values below */
  132.  
  133.         char                    prf_UseDOSFile[MAXCHAR_DESTPATH];
  134.                                                         /* Filename for backup to file */
  135.         char                    prf_UseDeviceName[MAXCHAR_DESTDEVICE];
  136.                                                         /* Devicename for backup to SCSI tape */
  137.         int                     prf_UseDeviceUnit;      /* Deviceunit for backup to SCSI tape */
  138.  
  139.         ULONG                   prf_PufferSizeFac;      /* Global buffer size in 40kB blocks.
  140.                                                            ~0 for max. available */
  141.         BOOL                    prf_NumDispShort;       /* TRUE for 12.34 MB display */
  142.         BYTE                    prf_SenderTaskPri;      /* Taskpri for hd read/write task */
  143.         BYTE                    prf_PackerTaskPri;      /* Taskpri for packing/unpacking */
  144.         BYTE                    prf_ReceiverTaskPri;    /* Taskpri for backup medium task */
  145.  
  146.         BYTE                    prf_PackerNum;          /* Used packer. 0 = NoPacker, 1 = LowEff... */
  147.         char                    prf_Packer[5][15];      /* Packer for each level (e.g. NUKE.5) */
  148.         BOOL                    prf_AskPw;              /* TRUE to ask backup title and password */
  149.         BOOL                    prf_CheckDOS;           /* Check disks for DOS format */
  150.         BOOL                    prf_CheckBack;          /* Check disks for Diavolo format */
  151.  
  152.         BYTE                    prf_OverwrtMode;        /* Action if file exists while restore.
  153.                                                            See below for details. */
  154.  
  155.         BOOL                    prf_ClearArchiveFlags;  /* TRUE to *SET* archive flags after backup
  156.                                                            (sorry, wrong label here :) */
  157.  
  158.         BOOL                    prf_UseDirStructure;    /* TRUE to restore dir. structure */
  159.  
  160.         struct  SCSIData        prf_SCSI;               /* SCSI Prefs. See above */
  161.  
  162.         BOOL                    prf_UseExAll;           /* Use ExAll to scan data (no longer used in 1.36+,
  163.                                                            use prf_FileSysCompat instead) */
  164.  
  165.         BOOL                    prf_FollowLinks;        /* FALSE to save HLed directories */
  166.         BOOL                    prf_IgnoreHLinks;       /* FALSE to save HLed files */
  167.         BOOL                    prf_RecursionCheck;     /* Unused, set to TRUE */
  168.  
  169.         BOOL                    prf_DeviceVerify;       /* AutoCompare in GlobalOptions, NOT ONLY for Devices
  170.                                                            anymore! */
  171.  
  172.         struct  PrefsSnapshot   prf_MenuSnapshot;       /* Window position and sizes */
  173.         struct  PrefsSnapshot   prf_DeviceSnapshot;     /* Use -1 to center window */
  174.         struct  PrefsSnapshot   prf_SelectSnapshot;
  175.         struct  PrefsSnapshot   prf_BackupSnapshot;
  176.         struct  PrefsSnapshot   prf_RestoreSnapshot;
  177.         struct  PrefsSnapshot   prf_VerifySnapshot;
  178.         struct  PrefsSnapshot   prf_ScanSnapshot;
  179.         struct  PrefsSnapshot   prf_GlobOptSnapshot;
  180.         struct  PrefsSnapshot   prf_BackOptSnapshot;
  181.         struct  PrefsSnapshot   prf_RestOptSnapshot;
  182.         struct  PrefsSnapshot   prf_SCSIOptSnapshot;
  183.         struct  PrefsSnapshot   prf_TapeIndexSnapshot;
  184.         struct  PrefsSnapshot   prf_PasswordSnapshot;
  185.         struct  PrefsSnapshot   prf_FilterSnapshot;
  186.  
  187.         UWORD                   prf_DeviceDestType;     /* Device destination, see below */
  188.         char                    prf_DirectDeviceName[MAXCHAR_DESTDEVICE];
  189.                                                         /* Name of direct Backup Device (removable media) */
  190.         struct  PrefsSnapshot   prf_ImageSnapshot;
  191.  
  192.         BOOL                    prf_UsePublicScreen;    /* TRUE if Diavolo should open on a public screen */
  193.         char                    prf_PubScreenName[MAXCHAR_PUBSCREEN];
  194.                                                         /* Name of the public screen Diavolo should use */
  195.  
  196.                                                         /* Following values provided by ASL (see asl.h) */
  197.         ULONG                   prf_DisplayID;          /* Display mode ID                  */
  198.         ULONG                   prf_DisplayWidth;       /* Width of display in pixels       */
  199.         ULONG                   prf_DisplayHeight;      /* Height of display in pixels      */
  200.         ULONG                   prf_DisplayDepth;       /* Number of bit-planes of display  */
  201.         ULONG                   prf_OverscanType;       /* Type of overscan of display      */
  202.         BOOL                    prf_AutoScroll;         /* Display should auto-scroll?      */
  203.  
  204.         char                    prf_FontName[MAXCHAR_FONTNAME];
  205.                                                         /* Font name */
  206.         UWORD                   prf_FontSize;           /* Font size */
  207.  
  208.         BOOL                    prf_FlatTree;           /* Use Flat directory tree */
  209.  
  210.         UWORD                   prf_FilesysCompat;      /* Filesystem compatibility, see below */
  211.         BOOL                    prf_UsePacketIO;        /* Use packet level I/O (asynchronous) */
  212.  
  213.         char                    prf_FileRepDest[MAXCHAR_REPDEST];
  214.                                                         /* Zielpfad für Filereport */
  215.         char                    prf_ErrorRepDest[MAXCHAR_REPDEST];
  216.                                                         /* Zielpfad für Fehlerreport */
  217.     };
  218.  
  219. #define PRF_MAGIC       0xa687b26c                          /* Magic value for PrefsFile above */
  220.  
  221.  
  222. #define MEDIUM_DOS              1                           /* prf_BackupMedium */
  223. #define MEDIUM_DISK             0
  224. #define MEDIUM_DEVICE           2
  225. #define MEDIUM_TRACKDEV         3
  226.  
  227. #define DESTTYPE_TAPE           0                           /* prf_DeviceDestType */
  228. #define DESTTYPE_DIRECT         1
  229.  
  230. #define OVERWRT_ASK             0                           /* prf_OverwrtMode */
  231. #define OVERWRT_NOT             1
  232. #define OVERWRT_ALWAYS          2
  233. #define OVERWRT_OLDER           3
  234. #define OVERWRT_RENOLD          4
  235. #define OVERWRT_RENNEW          5
  236.  
  237.                                                             /* prf_FilesysCompat */
  238. #define FSCOMP_1_3              1                           /* Don't use ANY 2.0 packets or DOS commands */
  239. #define FSCOMP_3_0              2                           /* Use 2.0/3.0 features except ExAll(), which was
  240.                                                                broken until 3.1 */
  241. #define FSCOMP_3_1              3                           /* Use all features, including ExAll() */
  242.  
  243.  
  244.